package Day_0225.SpringAOP;

/**
 * @author zxc
 * @date 2023/02/25 11:37
 **/
public class AOP_Definition {
    public static void main(String[] args) {
        /**
         * 面向切面编程（AOP）
         * ===》
         * 1.OOP(Object-Oriented Programming)
         * ===》
         * （1）面向对象编程，允许开发者定义纵向的关系，
         * （2）但并适用于定义横向的关系，导致了大量代码的重复，而不利于各个模块的重用。
         *
         * 2.AOP(Aspect-Oriented Programming)
         * （1）一般称为，面向切面编程，作为面向对象的一种补充，
         * （2）用于将那些与业务无关，但却对多个对象产生影响的公共行为和逻辑，抽取并封装为一个可重用的模块，
         *  这个模块被命名为“切面”（Aspect），
         * （3）减少系统中的重复代码，降低了模块间的耦合度，同时提高了系统的可维护性。可用于权限认证、日志、事务处理等。
         *
         */
    }
}
